home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xa;
-
- import com.extensibility.app.BaseDocument;
- import com.extensibility.app.Desktop;
- import com.extensibility.app.DialogFactory;
- import com.extensibility.xml.SchemaUtilities;
- import com.extensibility.xml.URI;
- import com.ibm.xml.parsers.SAXParser;
- import java.io.IOException;
- import java.io.Reader;
- import java.io.StringReader;
- import java.util.Enumeration;
- import java.util.Vector;
- import org.xml.sax.AttributeList;
- import org.xml.sax.HandlerBase;
- import org.xml.sax.InputSource;
- import org.xml.sax.Parser;
- import org.xml.sax.SAXException;
-
- public class BatchProcessor extends HandlerBase implements Runnable {
- public static final String OPEN_CMD = "OpenSchema";
- public static final String IMPORT_EXEMPLAR_CMD = "ImportExemplar";
- public static final String CLOSE_CMD = "CloseSchema";
- public static final String SAVE_CMD = "SaveSchema";
- public static final String SAVE_AS_CMD = "SaveAsSchema";
- public static final String PRINT_CMD = "PrintDiagram";
- public static final String EXIT_CMD = "Exit";
- private URI bpUri;
- private String bpString;
- protected Vector commands;
- protected int comCount;
-
- public BatchProcessor(URI var1) {
- this.bpUri = var1;
- this.bpString = null;
- }
-
- public BatchProcessor(String var1) {
- this.bpUri = null;
- this.bpString = var1;
- }
-
- public void run() {
- try {
- if (this.bpUri != null) {
- this.parse(this.bpUri);
- }
-
- if (this.bpString != null) {
- this.parse(this.bpString);
- }
-
- while(true) {
- BatchCommand var1 = this.getNextCommand();
- if (var1 == null) {
- break;
- }
-
- var1.doCommand();
- }
- } catch (Exception var2) {
- DialogFactory.showException(Desktop.getFrontDocWindow(), 132, var2);
- }
-
- }
-
- public synchronized BatchCommand getNextCommand() {
- if (this.commands == null) {
- return null;
- } else {
- return this.comCount < this.commands.size() ? (BatchCommand)this.commands.elementAt(this.comCount++) : null;
- }
- }
-
- public synchronized BaseDocument isDocAddedToDesktop(URI var1) {
- Enumeration var3 = Desktop.getDocuments();
-
- while(var3.hasMoreElements()) {
- BaseDocument var2 = (BaseDocument)var3.nextElement();
- if (var2.getClass() == Class.forName("com.extensibility.xa.SchemaDoc") && var2.getURI().equals(var1)) {
- return var2;
- }
- }
-
- return null;
- }
-
- public synchronized boolean isDocAddedToDesktop(BaseDocument var1) {
- Enumeration var3 = Desktop.getDocuments();
-
- while(var3.hasMoreElements()) {
- BaseDocument var2 = (BaseDocument)var3.nextElement();
- if (var2 == var1) {
- return true;
- }
- }
-
- return false;
- }
-
- public static boolean isBatchFile(URI var0) {
- return var0.getShortName().endsWith("xab");
- }
-
- public void error(String var1, String var2, int var3, int var4) throws SAXException {
- DialogFactory.showException(Desktop.getFrontDocWindow(), 110, var1);
- }
-
- public void parse(URI var1) throws IOException {
- Reader var3 = null;
-
- try {
- Parser var2 = SchemaUtilities.getParser();
- var2.setEntityResolver(this);
- var2.setErrorHandler(this);
- var2.setDocumentHandler(this);
- var3 = var1.createReader();
- var2.parse(new InputSource(var3));
- } catch (IOException var15) {
- throw var15;
- } catch (Exception var16) {
- if (!(var16 instanceof IOException)) {
- }
- } finally {
- try {
- if (var3 != null) {
- var3.close();
- }
- } catch (IOException var14) {
- }
-
- }
-
- }
-
- public void parse(String var1) throws IOException {
- try {
- SAXParser var2 = new SAXParser();
- var2.setEntityResolver(this);
- var2.setErrorHandler(this);
- var2.setDocumentHandler(this);
- StringReader var3 = new StringReader(var1);
- var2.parse(new InputSource(var3));
- } catch (IOException var5) {
- throw var5;
- } catch (Exception var6) {
- if (!(var6 instanceof IOException)) {
- }
- }
-
- }
-
- public void startDocument() {
- this.commands = new Vector();
- this.comCount = 0;
- }
-
- public void endDocument() {
- }
-
- public void startElement(String var1, AttributeList var2) {
- if (var1.equals("OpenSchema")) {
- String var3 = var2.getValue("uri");
- if (var3 != null) {
- URI var4 = new URI((URI)null, var3);
- if (this.isDocAddedToDesktop(var4) != null) {
- return;
- }
-
- OpenSchemaCommand var5 = new OpenSchemaCommand(this, var4);
- this.commands.addElement(var5);
- }
- } else if (var1.equals("ImportExemplar")) {
- String var8 = var2.getValue("uri");
- String var14 = var2.getValue("asuri");
- if (var8 != null && var14 != null) {
- URI var20 = new URI((URI)null, var8);
- URI var6 = new URI((URI)null, var14);
- this.commands.addElement(new ImportExemplarCommand(this, var20, var6));
- }
- } else if (var1.equals("PrintDiagram")) {
- String var9 = var2.getValue("elementType");
- String var15 = var2.getValue("expand");
- String var21 = var2.getValue("image");
- String var25 = var2.getValue("uri");
- PrintDiagramCommand var7 = new PrintDiagramCommand(this, var9, var15, var21, var25);
- this.commands.addElement(var7);
- } else if (var1.equals("SaveSchema")) {
- String var10 = var2.getValue("uri");
- if (var10 != null) {
- URI var16 = new URI((URI)null, var10);
- SaveSchemaCommand var22 = new SaveSchemaCommand(this, var16);
- this.commands.addElement(var22);
- }
- } else if (var1.equals("SaveAsSchema")) {
- String var11 = var2.getValue("uri");
- String var17 = var2.getValue("asuri");
- if (var11 != null && var17 != null) {
- URI var23 = new URI((URI)null, var11);
- URI var26 = new URI((URI)null, var17);
- SaveAsSchemaCommand var28 = new SaveAsSchemaCommand(this, var23, var26);
- this.commands.addElement(var28);
- }
- } else if (var1.equals("CloseSchema")) {
- String var12 = var2.getValue("uri");
- String var18 = var2.getValue("saveFirst");
- if (var12 != null) {
- URI var24 = new URI((URI)null, var12);
- CloseSchemaCommand var27 = new CloseSchemaCommand(this, var24, var18);
- this.commands.addElement(var27);
- }
- } else if (var1.equals("Exit")) {
- String var13 = var2.getValue("saveFirst");
- ExitAppCommand var19 = new ExitAppCommand((BatchProcessor)null, var13);
- this.commands.addElement(var19);
- }
-
- }
-
- public void endElement(String var1) {
- }
- }
-